package com.example.bms.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.bms.entity.Student;


/**
 * @apiNote 实现对学生的增删改查以及修改密码
 * @author
 * @email 2681413363@qq.com
 * @since 1.0.0
 */
public interface StudentService {

    /**
     * @apiNote 分页查询所有学生
     * @param page 页数
     * @author
     * @email 2681413363@qq.com
     * @return IPage<Student>
     * @since 1.0.0
     */
    IPage<Student> findAll(Page<Student> page);


    /**
     * @apiNote 根据学生Id查询学生
     * @param studentId 学生Id
     * @author
     * @email 2681413363@qq.com
     * @return Student
     * @since 1.0.0
     */
    Student findById(Integer studentId);


    /**
     * @apiNote 删除学生
     * @param studentId 学生Id
     * @author
     * @email 2681413363@qq.com
     * @return int类型，受影响的条数
     * @since 1.0.0
     */
    int deleteById(Integer studentId);


    /**
     * @apiNote 修改学生信息
     * @param student 学生实体类
     * @author
     * @email 2681413363@qq.com
     * @return int类型，受影响的条数
     * @since 1.0.0
     */
    int update(Student student);


    /**
     * @apiNote 更新密码
     * @param student 学生实体类
     * @author
     * @email 2681413363@qq.com
     * @return int类型，受影响的条数
     * @since 1.0.0
     */
    int updatePwd(Student student);


    /**
     * @apiNote 增加学生
     * @param student 学生实体类
     * @author
     * @email 2681413363@qq.com
     * @return int类型，受影响的条数
     * @since 1.0.0
     */
    int add(Student student);
}
